package com.niiuzu.client.screen.feed.manager;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.Widget;

/**
 * Implémentation de la vue pour la gestion des flux et des données RSS.
 */
public class FeedManagerViewImpl extends Composite implements FeedManagerView {

	/**
	 * Interface {@link UiBinder} adaptée à la vue {@link FeedManagerViewImpl}.
	 */
	interface SuitedUiBinder extends UiBinder<Widget, FeedManagerViewImpl> {

	}

	@UiField
	Panel channelManagerContainer;
	@UiField
	Panel feedViewerContainer;
	@UiField
	Button refreshButton;
	@UiField
	Widget refreshMessage;

	@Override
	public void createView() {
		SuitedUiBinder uiBinder = GWT.create(SuitedUiBinder.class);
		initWidget(uiBinder.createAndBindUi(this));
	}
	
	@Override
	public String toString() {
		return this.getClass().toString();
	}

	@Override
	public void disableActionComponents() {
		refreshButton.setEnabled(false);
	}

	@Override
	public void enableActionComponents() {
		refreshButton.setEnabled(true);
	}

	@Override
	public HasClickHandlers getRefreshHasClickHandlers() {
		return refreshButton;
	}

	@Override
	public void hideRefreshMessage() {
		refreshMessage.setVisible(false);
	}

	@Override
	public void showRefreshMessage() {
		refreshMessage.setVisible(true);
	}

	@Override
	public void setChannelManagerView(IsWidget channelManagerView) {
		channelManagerContainer.add(channelManagerView);
	}

	@Override
	public void setFeedViewerView(IsWidget feedViewerView) {
		feedViewerContainer.add(feedViewerView);
	}

}
